home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload Trio 2 / Shareware Overload Trio Volume 2 (Chestnut CD-ROM).ISO / dir24 / nosinst.zip / TUTORETC.ZIP / IP_TUTOR.TXT < prev    next >
Text File  |  1993-12-13  |  18KB  |  424 lines

  1. What happens when I "TELNET BOB"?
  2.  
  3. A guide to configuring Packet Radio TCP/IP
  4. by Andrew Benham, G8FSL
  5.  
  6. This may be freely copied and distributed for non-commercial
  7. use.
  8.  
  9.  
  10.  
  11. The purpose of this guide is to shorten the learning process
  12. when trying to configure a Packet Radio version of TCP/IP.
  13. Most packages come with documentation: this usually goes into
  14. great detail about the syntax of each command. This is fine
  15. provided you know which command you need at the time. If you
  16. don't then you have to wade through pages of text.
  17.  
  18. Until now, that is...
  19.  
  20.  
  21. 1. Introduction.
  22.  
  23. TCP/IP is the name applied to a whole suite of network
  24. protocols, used all over the world on a variety of different
  25. computer setups (commercial, military, academic, etc). TCP and
  26. IP are in fact two protocols from this suite- probably the two
  27. most common and most important protocols. The term "TCP/IP" is
  28. used to refer to the whole caboodle, "TCP" or "IP" on their
  29. own will mean something different.
  30. At this point most documents will ramble on about ISO OSI 7
  31. layer models, peer to peer protocols, etc. Not this one!
  32.  
  33.  
  34. 2. Physical Links
  35.  
  36. The TCP/IP network protocols allow computers to be
  37. interconnected and thus networked. The protocols are designed
  38. to allow inter-networking ("IP" stands for Internet Protocol),
  39. and so there is no assumption made about the physical type of
  40. the network.
  41. This means that the TCP/IP traffic has to be moved from one
  42. computer to another by some physical means: TCP/IP doesn't
  43. care HOW this is done (it has to know how to read from and
  44. write to this physical entity, but that's the limit of its
  45. required knowledge).
  46. In the world of wired networks the physical link is often
  47. Ethernet- a 10 Megabit/second data link carried on coax. On
  48. packet radio the physical link is "ordinary" packet radio-
  49. AX25.
  50. In almost every case of a physical link (SLIP, for example, is
  51. an exception), there will be some form of addressing needed in
  52. order to identify the sender and recepient of each message to
  53. the physical link. For example, a message on an AX25 link HAS
  54. to have the callsign of the sender and (unless it's a "CQ"
  55. type message) it has to have the callsign of the recipient.
  56. These addresses (callsigns) are nothing to do with TCP/IP-
  57. they are solely there to move the TCP/IP information about.
  58. Because it can get confusing, if an identifier is in UPPER
  59. CASE in this document then it will be a physical link address
  60. (and since I'm only considering radio links, they're
  61. callsigns).
  62. (SLIP - Serial Link IP - is a protocol for connecting two
  63. machines directly with a serial link between them. This needs
  64. no physical addressing, as it's a direct point-to-point link).
  65.  
  66.  
  67. 3. Hostnames and IP Addresses
  68.  
  69. TCP/IP information leaves one machine and arrives at another
  70. (how it gets there physically is not of great interest to
  71. TCP/IP). The machines themselves have to be identified
  72. uniquely in order that information can be sent to the right
  73. one. The identifier used is the "IP Address". The allocation
  74. of these is co-ordinated internationally to ensure no
  75. duplication.
  76. The address is a 32-bit binary number, which allows for about
  77. 4000 million different addresses. As the human brain finds
  78. difficulty with those sorts of numbers, the address is usually
  79. broken down into 4 8-bit binary numbers. In binary, 8 bits can
  80. represent a number from 0 to 255. The 4 8-bit numbers are
  81. written down separated by dots, like so:
  82.                          44.131.19.45
  83. The world IP address allocator has reserved the first number
  84. of 44 for the amateur packet radio "organisation" (am p r org,
  85. hence ".ampr.org", see later). The worldwide amateur packet
  86. radio co-ordinator has reserved the second number 131 for the
  87. UK. The UK co-ordinatot (G6PWY) has reserved the third number
  88. 19 for RSGB Region 19 (Greater London north of the Thames, and
  89. Hertfordshire). The Region 19 co-ordinator (G8FSL) has
  90. reserved the fourth number 45 for himself. 44.131.19.45
  91. uniquely identifies G8FSL's TCP/IP computer in the world.
  92. Now the IP protocol (excuse the tautology) uses this number to
  93. identify the machine, but the average user can't work with
  94. this as an identifier. Humans prefer names (Bill, Jim, Fifi-
  95. Trixiebell) instead, so usually give each machine a unique
  96. hostname for their use. These hostnames identify the machine
  97. and the organisation in which they are. In the commercial
  98. world these machines usually have snappy names, like
  99. "maple.bnr.co.uk" for a machine codenamed "maple" at a U.K.
  100. company called "BNR". Naturally amateurs use their callsigns
  101. for everything (including passwords! (?)), so use hostnames
  102. like "g8fsl.ampr.org".
  103. It is important to realise that TCP/IP makes (almost) no use
  104. of hostnames - in general, when a hostname is seen it is
  105. looked up in a DOMAIN file to translate it to an IP address
  106. (SMTP - the mail protocol - is an exception to this). This
  107. DOMAIN file may be on the same machine, or it may be on a
  108. remote computer which provides a domain server function. This
  109. DOMAIN file is important - without it all references to
  110. machines would have to be by their IP address.
  111. To try and stop confusion between callsigns (I'm using UPPER
  112. CASE for them, remember) I'll refer to hostnames in full (e.g.
  113. g8fsl.ampr.org).
  114.  
  115.  
  116. 4. Routing
  117.  
  118. Networks are all about routing. Without routes, there is no
  119. network. In TCP/IP there are two types of route to consider:
  120. TCP/IP routing, and physical link routing. Two types to
  121. consider, two types to get confused about.
  122. TCP/IP routing is all about passing TCP/IP traffic to a
  123. machine. TCP/IP machines can handle traffic for any other
  124. TCP/IP machine, provided the routes are set up. Again it isn't
  125. important (to TCP/IP) *how* it gets to a machine - that's up
  126. to the physical link.
  127. Physical link routing is concerned with getting AX25 packets
  128. to and from other stations.
  129. The physical link must exist, i.e. you must be able to connect
  130. to the other station, and it is your direct responsibility.
  131. The TCP/IP link is a more abstract concept. No, abstract's not
  132. the right word, so let's try an example.
  133.  
  134. Alf, G9ALF, has a packet link to Jim, G9JIM, and another to
  135. Bob, G9BOB. He can digipeat (if he must!) through G9DIG to
  136. Tom, G9TOM. That's it, no more links. Therefore his physical
  137. link routing table can only include these 3 entries, and they
  138. are cast in stone.
  139. He can only connect to three stations, so packet radio used to
  140. be dull. But now they're all on TCP/IP these stations provide
  141. him with the physical links to carry his TCP/IP traffic all
  142. over the world. These 3 neighbouring stations are his gateways
  143. to the rest of the world.
  144.  
  145.  
  146. 4.1 Physical routing
  147.  
  148. Taking the example above, assuming everybody's TCP/IP
  149. callsigns end in "-5", Alf would have a physical routing table
  150. built like this:
  151.  
  152. ax25 route add G9JIM-5
  153. ax25 route add G9BOB-5
  154. ax25 route add G9TOM-5 via G9DIG
  155.  
  156. Watch this last one- depending on the flavour of NOS in use
  157. the "via" word may or may not be needed. "ax route" will
  158. usually display the current entries to make sure NOS and you
  159. agree about the routes.
  160. I've assumed that G9DIG doesn't run TCP/IP, so isn't "G9DIG-
  161. 5". If he is running TCP/IP, why is Alf using him as a
  162. digipeater (see later).
  163. One other variable to throw in for consideration- the type of
  164. the physical link.
  165. TCP/IP is a robust networking system, and so it can cope with
  166. packets getting lost - it will send retries. So, of course,
  167. can AX25 (the physical link), but AX25 can also be operated in
  168. a non-retrying mode. Is it better to have TCP/IP handle lost
  169. packets, or for AX25 to do it?
  170. There are pros and cons for the two options. If AX25 handles
  171. the lost packets as well as TCP/IP (the so called "virtual
  172. circuit"), then the link will be more reliable, but it will be
  173. slower and clog up the frequency (there are more packets
  174. flying about). If AX25 operates without handling the lost
  175. packets (in "datagram" mode) there will be fewer packets on
  176. the channel, but the link may not be so reliable.
  177. In general, if the path is good use a "datagram" connection,
  178. but if the path is poor a "virtual circuit" is more likely to
  179. give better results. It boils down to how likely is that that
  180. a packet will be lost?
  181. The link type can be set, both a "default" type and a type for
  182. each individual link. The commands vary, try "mode", "ax25
  183. route mode", or look in the book!
  184.  
  185.  
  186. 4.2 TCP/IP routing
  187.  
  188. TCP/IP routing is totally separate from Physical Link routing.
  189. It deals solely with machines, asking "I have traffic for
  190. machine 'xyz', which machine should I send it too?". Sounds
  191. like a crazy question - send it to 'xyz'!
  192. But what if 'xyz' is on the other side of the world? There's
  193. no way that it can be reached directly. Remember though that
  194. any machine can handle traffic for any other, so it is a case
  195. of routing traffic to the most suitable machine in range.
  196.  
  197. Going back to our example, all the TCP/IP stations have the
  198. logical hostnames we'd expect. Alf, who's only got one port (a
  199. TNC) called 'tnc0', starts to set up his routing table:
  200.  
  201. route add g9jim.ampr.org tnc0
  202. route add g9bob.ampr.org tnc0
  203. route add g9tom.ampr.org tnc0
  204.  
  205. Right, they're the obvious routes. Now for the rest of the
  206. world.
  207. Jim is well sited to get to smart_alec.ampr.org, who is a real
  208. TCP/IP whizz-kid, and will route anything anywhere. But Bob is
  209. in a better direction to handle traffic for Suffolk and Essex
  210. (and beyond), and Tom has a brilliant path into Kent (and
  211. beyond).
  212. So Alf wants to use these stations as gateways, to handle his
  213. TCP/IP traffic for him, and wants to add into his routing
  214. table something like:
  215.  
  216. route add {anyone in Suffolk} tnc0 g9bob.ampr.org
  217. route add {anyone in Essex}   tnc0 g9bob.ampr.org
  218. route add {anyone in Kent}    tnc0 g9tom.ampr.org
  219. route add default             tnc0 g9jim.ampr.org
  220.  
  221. Unfortunately Alf's version of NOS throws a wobbly with the
  222. first three lines. There must be a way to do it?
  223.  
  224. Yes, there is!
  225.  
  226. Let's go back a few pages to IP Addresses. They are 32 bit
  227. binary numbers, usually grouped in 4 lots of 8 bits each (e.g.
  228. 44.131.19.45).
  229. Any address in the UK will be 44.131.xxx.yyy in format. 'xxx'
  230. specifies the RSGB region, 'yyy' the user in that region. So
  231. Alf looks in his callbook, and sees that Essex and Suffolk are
  232. in region 16 (as is Norfolk, which is fine as Alf's traffic
  233. for Norlfolk ought to go through Suffolk). Kent is in region
  234. 8, together with West and East Sussex- again, traffic for the
  235. two Sussex counties ought to be routed via Kent).
  236.  
  237. So Alf needs to replace "{anyone in Suffolk}" and "{anyone in
  238. Essex}" by something like:
  239. "anyone whose IP address is '44.131.16.xxx', where it doesn't
  240. matter what the 'xxx' is".
  241. Similarly, the Kent entry needs to be:
  242. "anyone whose IP address is '44.131.8.yyy', where it doesn't
  243. matter what the 'yyy' is".
  244.  
  245. Saying '44.131.16.xxx' is equivalent to saying "A 32 bit IP
  246. address, where the first 8 bits must represent the decimal
  247. number 44, the second 8 bits 131, the third 8 bits 16, and
  248. anything for the last 8 bits". In other words, anything that
  249. matches "44.131.16.0" for the first 24 bits. And NOS provides
  250. a way to enter that into the routing table, so Alf can add
  251.  
  252. route add 44.131.16.0/24 tnc0 g9bob.ampr.org
  253. route add 44.131.8.0/24  tnc0 g9tom.ampr.org
  254.  
  255. for RSGB Regions 16 and 8 respectively.
  256. The slash ("/") tells NOS how many bits out of the 32
  257. (starting "from the left") have to match a given IP address.
  258. For a normal address entry (with no slash), the full 32 bits
  259. must match.
  260. The special "route add default" entry means "any address" (0
  261. bits need match).
  262. NOS is intelligent, in that it picks out of the routing table
  263. the entry that matches the greatest number of bits in the
  264. given address.
  265.  
  266. NOTE: in Southern England, even as I type (2 September 1992),
  267. we're trying to start an experiment where IP addresses specify
  268. geographical location with better resolution than RSGB Region.
  269. This means that the routing split of IP addresses uses more
  270. than the 24 bits of the above example. If you're happy with
  271. binary numbers you can work it out for yourself, if you're not
  272. a binary guru then this isn't the time or place to learn!
  273.  
  274. (Most versions of NOS will work without having to type
  275. ".ampr.org" after every hostname).
  276.  
  277.  
  278. 5. Whoops!
  279.  
  280. Right, all clear so far? What do you mean, as mud?
  281.  
  282. Well, there's something I've left out!
  283. You know quite well that "g9bob.ampr.org" is the hostname of
  284. the TCP/IP station at G9BOB, who uses the callsign G9BOB-5 for
  285. his TCP/IP setup.
  286. Unfortunately NOS doesn't! But it has a way to find out:
  287. "Address Resolution Protocol" - ARP.
  288. ARP is used to associate an IP address (and thus, via the
  289. DOMAIN file, a hostname) with a physical link protocol and
  290. address, just so TCP/IP can be carried on the physical link to 
  291. the right place.
  292. There is an ARP table in NOS, which can either be loaded
  293. either manually, or automatically by NOS asking "on air".
  294. Manually entering the details of your neighbours seems like a
  295. good idea. Alf enters:
  296.  
  297. arp add g9bob.ampr.org AX25 G9BOB-5
  298. arp add g9tom.ampr.org AX25 G9TOM-5
  299. arp add g9jim.ampr.org AX25 G9JIM-5
  300.  
  301. If there isn't an entry for a hostname when NOS comes to try a
  302. direct connection, it will put out an "ARP REQUEST". This is a
  303. broadcast on the channel, and says "Hi there, I'm
  304. g9alf.ampr.org, you can connect to me physically as G9ALF-5:
  305. I'm looking for <hostname>, are you there? If you are, send me
  306. your physical address".
  307. If the host hears the "ARP REQUEST", it ought to send an "ARP
  308. REPLY" to the requester, giving the physical address.
  309. If the host is local this transaction will take place, and an
  310. entry made in the ARP table. This entry is only valid for a
  311. certain time, whereas manual entries last for ever: hence it
  312. is better to add the details of your neighbours manually.
  313.  
  314.  
  315. 6. What happens when I "TELNET BOB"
  316.  
  317. Hey, that was the title of something I started to read months
  318. ago!
  319. Right, you should now be able to visualise what happens when
  320. Alf types "telnet g9bob" on his computer.
  321.  
  322. a.   the hostname (which is really "g9bob.ampr.org") gets
  323.      looked-up in the DOMAIN file. If it isn't found an error
  324.      message is given ("host g9bob not found"), and NOS goes
  325.      no further. If it is found, the IP address is returned.
  326.  
  327. b.   The IP address is run through the TCP/IP routing table,
  328.      and the "best match" route found. (The TCP/IP routing
  329.      table uses only IP addresses, but NOS will probably show
  330.      the table entries with hostnames to make it easy for
  331.      you). This operation cannot fail- it will return the port
  332.      to use, and an IP address to route to (which may be a
  333.      gateway, perhaps the "default" route, or a direct route).
  334.      TCP/IP is still regarding the route as being to
  335.      "g9bob.ampr.org", but is looking for the first stage in
  336.      the route. I'll call the IP address it's going to route
  337.      via "the gateway".
  338.  
  339. c.   TCP/IP has gone as far as it can. It now needs a physical
  340.      link to carry its traffic to the gateway. It looks-up the
  341.      gateway (in this example "g9bob.ampr.org") in the ARP
  342.      table.
  343.      If there is an entry (well, there is in this case) it
  344.      returns the physical link protocol to use (AX25) and a
  345.      physical link address (G9BOB-5).
  346.      If there wasn't an entry, ARP would broadcast a request
  347.      to try and find the details. At this point it knows the
  348.      port to use (returned from the TCP/IP routing table), and
  349.      the "attach" command will have associated a physical link
  350.      protocol with that port. Thus the broadcast isn't that
  351.      "broad". Fortunately.
  352.  
  353. d.   We've now left TCP/IP behind, and are in the old world of
  354.      physical links. In practice, we're resolving AX25 links
  355.      to see if digipeaters are involved. This is achieved by
  356.      checking the AX25 routing table, which also gives the
  357.      type of AX25 link (virtual circuit or datagram) to use.
  358.  
  359. e.   Everything is resolved, and the traffic goes out.
  360.  
  361. f.   At the far end, G9BOB's machine gets an "incoming Telnet
  362.      session". TCP/IP has to send an acknowledgement to
  363.      "g9alf.ampr.org". Well, in fact TCP/IP doesn't know about
  364.      the hostname, just the IP address of the source of the
  365.      traffic. G9BOB's machine doesn't have to do step (a)
  366.      above, but it does *all* the other steps.
  367.      It is important to realise that TCP/IP does not receive
  368.      any information of how the traffic to it arrived- each
  369.      machine uses its own routing information (I think WNOS is
  370.      an exception to this rule though- it seems to modify its
  371.      routing tables according to received traffic). This is a
  372.      feature of TCP/IP networking, and one which can cause
  373.      problems of comprehension to new users. Most packet radio
  374.      applications use symmetrical routes: TCP/IP need not, and
  375.      if the destination doesn't have a route back then you're
  376.      stuck.
  377.  
  378.  
  379. 7. Why no mention of NET/ROM ?
  380.  
  381. It is possible to use NET/ROM physical links to carry TCP/IP
  382. traffic. In this case there is a NET/ROM routing table (in the
  383. same way as an AX25 routing table).
  384. However there is little point in using NET/ROM links if there
  385. are sufficient TCP/IP stations to perform the routing at the
  386. TCP/IP level. In fact, NET/ROM links add more bytes to each
  387. TCP/IP packet and therefore increase channel congestion. And
  388. that's before the NET/ROM has broadcast details of every other
  389. NET/ROM station it can reach, possibly via 6 hops.
  390.  
  391. So, if you don't need to NET/ROM, don't. It's only something
  392. else to set up.
  393.  
  394.  
  395.  
  396.  
  397. All trade marks acknowledged.
  398.  
  399.  
  400. Andrew Benham   G8FSL       2 September 1992
  401.  
  402. G8FSL@GB3XP              g8fsl@g8fsl.ampr.org [44.131.19.195]
  403.  
  404. ==============================================================
  405.  
  406. This may be freely copied and distributed for non-commercial
  407. use.
  408.  
  409. Despite being freely copyable, if you feel so inclined,
  410. sending a couple of quid to:
  411.  
  412. The National Asthma Campaign, Providence House, Providence Place,
  413.   London N1 0NT
  414.  
  415. would be a suitable expression of thanks.
  416.  
  417. This document may not be included in a publication (e.g.
  418. newsletter, magazine), or distributed or copied for financial
  419. gain, or used commercially, without prior consulation with the
  420. author.
  421. (Permission will always be given in reality, just that it
  422. might cost you a fiver to the N.A.C.)
  423.  
  424.